package Day017_缓冲流_转换流_序列化流_打印流.demo7_commons_io工具包;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author zhangyan
 * @date 2020/5/9 15:41
 */
public class Test {
    public static void main(String[] args)throws Exception {
        /*
             commons-io工具包:
                commons-io工具包的概述
                    commons-io是apache开源基金组织提供的一组有关IO操作的类库，可以挺提高IO功能开发的效率。

                commons-io工具包的使用
                    使用步骤：
                        1. 下载commons-io相关jar包；http://commons.apache.org/proper/commons-io/
                        2. 把commons-io-2.6.jar包复制到指定的Module的lib目录中
                        3. 将commons-io-2.6.jar加入到classpath中

                commons-io工具包常用api介绍
                    -  org.apache.commons.io.IOUtils，封装了大量IO读写操作的代码。其中有两个常用方法：
                        1. public static int copy(InputStream in, OutputStream out)； 拷贝文件，返回拷贝的字节个数(适合文件大小为2GB以下)
                        2. public static long copyLarge(InputStream in, OutputStream out)；拷贝文件，返回拷贝的字节个数(适合文件大小为2GB以上)
                - commons-io还提供了一个工具类org.apache.commons.io.FileUtils，封装了一些对文件操作的方法：
                      1. public static void copyFileToDirectory(final File srcFile, final File destFile) //复制文件到另外一个目录下。
                      2. public static void copyDirectoryToDirectory( File file1 , File file2 );//复制file1目录到file2目录位置。
         */
        // FileUtils工具类拷贝文件到指定文件夹
        // File srcFile = new File("day17\\aaa\\a.txt");
        // File destFile = new File("day17\\eee");
        // FileUtils.copyFileToDirectory(srcFile,destFile);

        // FileUtils工具类拷贝文件夹到指定文件夹
        File srcFile = new File("Demo02\\bbb");
        File destFile = new File("Demo02\\ccc");
        FileUtils.copyDirectoryToDirectory(srcFile,destFile);
    }

    // IOUtils工具类拷贝文件
    private static void method01() throws IOException {
        FileInputStream fis = new FileInputStream("Demo02\\aaa\\a.txt");
        FileOutputStream fos = new FileOutputStream("Demo02\\aaa\\aa.txt");
        IOUtils.copy(fis,fos); //org.apache.commons.io.IOUtils包
        fos.close();
        fis.close();
    }
}
